// miniprogram/pages/class_detail/class_detail.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    list: [],    //两次分组后的请假信息列表
    index: 0,     //点击列表中的下标
    a: 0,         //循环判断变量
    show: false,        //搜索不到时显示
    show_text: '没有相关数据！',       //搜索不到时显示文字
    Akey: '',           //搜索框输入文字暂存变量
    i: 0                //搜索所需循环变量
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({   //获取上个页面传过来的数据
      index: options.index,
      list: JSON.parse(options.list)
    })
    this.chanceList();
    var there = this;
    wx.getStorage({
      key: 'list_sorttime',
      success (res) {
        //console.log(res.data)
        there.setData({
          list: res.data
        })
      }
    })
    try {
      var value = wx.getStorageSync('list_sorttime')
      if (value) {
        // Do something with return value
      }
    } catch (e) {
      // Do something when catch error
    }
  },

  chanceList(){           //修改数组
    this.data.list.forEach(item=>{item.stu_outStamp=0});
    while(this.data.a < this.data.list.length){   //循环list数组，时间类型转换成可读性数据
      var stu_out = 'list['+this.data.a+'].stu_out'   
      var stu_outStamp = 'list['+this.data.a+'].stu_outStamp'
      var date_stu_out = new Date(((this.data.list)[this.data.a]).stu_out).getTime();
      var year_stu_out = new Date(date_stu_out).getFullYear();      //年
      var month_stu_out = new Date(date_stu_out).getMonth()+1;      //月
      var Date_stu_out = new Date(date_stu_out).getDate();          //日
      var hours_stu_out = new Date(date_stu_out).getHours();        //时
      var minutes_stu_out = new Date(date_stu_out).getMinutes();    //分
      var seconds_stu_out = new Date(date_stu_out).getSeconds();    //秒
      if(month_stu_out < 10){
        month_stu_out = "0" + month_stu_out
      }
      if(Date_stu_out < 10){
        Date_stu_out = "0" + Date_stu_out
      }
      if(hours_stu_out < 10){
        hours_stu_out = "0" + hours_stu_out
      }
      if(minutes_stu_out < 10){
        minutes_stu_out = "0" + minutes_stu_out
      }
      if(seconds_stu_out < 10){
        seconds_stu_out = "0" + seconds_stu_out
      }
      this.setData({   
        [stu_out] : year_stu_out+'-'+month_stu_out+'-'+Date_stu_out+' '+hours_stu_out+':'+minutes_stu_out+':'+seconds_stu_out,
        [stu_outStamp]: Date.parse(new Date((this.data.list[this.data.a]).stu_out)),
        a : this.data.a + 1
      })
    }
    this.data.list.sort((a, b) => b.stu_outStamp - a.stu_outStamp)
    wx.setStorage({     //数据缓存
      key:"list_sorttime",
      data:this.data.list
    })
    try {
      wx.setStorageSync('list_sorttime',this.data.list)
    } catch (e) { }
  },

  //键盘输入时实时调用搜索方法
  input(e){
    //console.log(e.detail)
    this.search(e.detail.value)
  },

  search(key){         //根据输入框搜索数据
    this.setData({
      Akey: key,
      show: false
    })
    var that = this;
    wx.getStorage({          //获取缓存数据
      key: 'list_sorttime',
      success (res) {
        //console.log(res.data)
        if (that.data.Akey == ''){            //搜索为空，显示所有
          that.setData({
            list: res.data
          })
        }else{ 
          var arr = [];   //暂时数组，存放数据
          //判断输入内容字符串本质是数字还是字符串,然后去匹配年级或者班级
          var regPos = /^\d+(\.\d+)?$/; //非负浮点数
          var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
          if(regPos.test(that.data.Akey) || regNeg.test(that.data.Akey)) {     //true，匹配学号
            while (that.data.i < res.data.length) {
              if ((res.data[that.data.i].stu_id).indexOf(that.data.Akey) >= 0) {  //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
                arr.push(res.data[that.data.i])
              }
              that.setData({
                i: that.data.i + 1
              })
            }
            that.setData({
              i: 0
            })
            if (arr.length == 0) {
              that.setData({
                list: [],
                show: true
              })
            } else {
              that.setData({
                list: arr
              })
            }
          } else {   //false,匹配班级
            while (that.data.i < res.data.length) {
              if ((res.data[that.data.i].stu_name).indexOf(that.data.Akey) >= 0) {
                arr.push(res.data[that.data.i])
              }
              that.setData({
                i: that.data.i + 1
              })
            }
            that.setData({
              i: 0
            })
            if (arr.length == 0) {
              that.setData({
                list: [],
                show: true
              })
            } else {
              that.setData({
                list: arr
              })
            }
          }    
        }
      }
    })
    try {
      var value = wx.getStorageSync('list_sorttime')
      if (value) {
        // Do something with return value
      }
    } catch (e) {
      // Do something when catch error
    }
  },

  toLeave_detail(event){    //跳转leave_detail
    //获取点击跳转对应的下标
    let index1 = event.currentTarget.dataset.index;
    wx.navigateTo({
      url: '/pages/teacher_leave_detail/teacher_leave_detail?list='+JSON.stringify(this.data.list[index1])  
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})